package com.jh.fcsm.service.area;

import java.io.IOException;
import java.util.List;
import com.github.pagehelper.PageInfo;
import com.jh.fcsm.beans.area.BasicArea;
import com.jh.fcsm.beans.area.ImportError;
import com.jh.fcsm.beans.area.vo.BasicAreaVo;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;

/**
 * 行政区划管理Service接口
 * 
 * @author linq
 * @date 2024-08-15
 */
public interface BasicAreaService{
	/**
	 * 保存或更新行政区划管理
	 *@param basicArea 行政区划管理对象
	 *@return String 行政区划管理ID
	 *@author linq
	 */
	String saveOrUpdateBasicArea(BasicArea basicArea);
	
	/**
	 * 删除行政区划管理
	 *@param ids void 行政区划管理ID
	 *@author linq
	 */
	void deleteBasicArea(List<String> ids);

	/**
	 * 查询行政区划管理详情
	 *@param id
	 *@return BasicArea
	 *@author linq
	 */
	BasicArea findById(String id);

	/**
	 * 分页查询行政区划管理
	 *@param basicAreaVo
	 *@return PageInfo<BasicArea>
	 *@author linq
	 */
	PageInfo<BasicArea> findPageByQuery(BasicAreaVo basicAreaVo);

	/**
	 * Excel导入行政区划数据
	 * @param file
	 * @return
	 */
	List<ImportError> importAreaData(MultipartFile file, HttpServletResponse response) throws IOException;

	void generateErrorReport(List<ImportError> errors, HttpServletResponse response) throws IOException;

	/**
	 * 导出行政区划数据到Excel文件
	 *
	 * @param areaList
	 * @param response
	 */
	void exportAreaData (List<BasicArea> areaList, HttpServletResponse response) throws IOException;


}
